package com.ecut.property_project.model.charge;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;

public class ChargeItem {
    private Integer id;

    /**
    * ！计费单位
    */
    private Object chargeUnit;

    /**
    * ！计费方式
    */
    private Object chargeMethod;

    /**
    * ！收取周期
    */
    private Object period;

    /**
    * 生效日期
    */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date effectiveDate;

    /**
    * 失效日期
    */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
    private Date expirationDate;

    /**
    * 入行阶段
    */
    private Integer stage;

    /**
    * 入行阶段名称
    */
    private String stageName;

    /**
    * 入行开始
    */
    private Integer start;

    /**
    * 入行结束
    */
    private Integer end;

    /**
    * 备注
    */
    private String note;

    /**
    * 单价
    */
    private BigDecimal price;

    /**
    * 行号
    */
    private String tenantId;

    /**
    * 表头
    */
    private String headId;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Object getChargeUnit() {
        return chargeUnit;
    }

    public void setChargeUnit(Object chargeUnit) {
        this.chargeUnit = chargeUnit;
    }

    public Object getChargeMethod() {
        return chargeMethod;
    }

    public void setChargeMethod(Object chargeMethod) {
        this.chargeMethod = chargeMethod;
    }

    public Object getPeriod() {
        return period;
    }

    public void setPeriod(Object period) {
        this.period = period;
    }

    public Date getEffectiveDate() {
        return effectiveDate;
    }

    public void setEffectiveDate(Date effectiveDate) {
        this.effectiveDate = effectiveDate;
    }

    public Date getExpirationDate() {
        return expirationDate;
    }

    public void setExpirationDate(Date expirationDate) {
        this.expirationDate = expirationDate;
    }

    public Integer getStage() {
        return stage;
    }

    public void setStage(Integer stage) {
        this.stage = stage;
    }

    public String getStageName() {
        return stageName;
    }

    public void setStageName(String stageName) {
        this.stageName = stageName;
    }

    public Integer getStart() {
        return start;
    }

    public void setStart(Integer start) {
        this.start = start;
    }

    public Integer getEnd() {
        return end;
    }

    public void setEnd(Integer end) {
        this.end = end;
    }

    public String getNote() {
        return note;
    }

    public void setNote(String note) {
        this.note = note;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getHeadId() {
        return headId;
    }

    public void setHeadId(String headId) {
        this.headId = headId;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", chargeUnit=").append(chargeUnit);
        sb.append(", chargeMethod=").append(chargeMethod);
        sb.append(", period=").append(period);
        sb.append(", effectiveDate=").append(effectiveDate);
        sb.append(", expirationDate=").append(expirationDate);
        sb.append(", stage=").append(stage);
        sb.append(", stageName=").append(stageName);
        sb.append(", start=").append(start);
        sb.append(", end=").append(end);
        sb.append(", note=").append(note);
        sb.append(", price=").append(price);
        sb.append(", tenantId=").append(tenantId);
        sb.append(", headId=").append(headId);
        sb.append("]");
        return sb.toString();
    }
}